/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufrn.dimap.Visitors;

import br.ufrn.dimap.Grafo.Comentario;
import br.ufrn.dimap.Grafo.Postagem;
import br.ufrn.dimap.Grafo.Usuario;
import br.ufrn.dimap.contagem.UsuarioPostSugestao;
import br.ufrn.dimap.contagem.ValueComparator;
import java.util.*;

/**
 *
 * @author augusto
 */
public class TopAmigosPalavraVisitor extends Visitor{
    public HashMap getListaAmigosPalavra() {
        return listaAmigosPalavra;
    }
    
    private HashMap<String, UsuarioPostSugestao> listaAmigosPalavra;
    private String palavra;
    public TopAmigosPalavraVisitor(String palavra){
        this.palavra = palavra;
        this.listaAmigosPalavra = new HashMap<String, UsuarioPostSugestao>();
    }
    
    public void visit(Usuario usuario)
    {
        if(usuario.getPosts() != null){
            Iterator<Postagem> posts = usuario.getPosts().iterator();
            while(posts.hasNext()){
                Postagem post = posts.next();
                if(post.getMensagem().toLowerCase().contains(palavra.toLowerCase())){
                    UsuarioPostSugestao u = new UsuarioPostSugestao(post.getAutor());                   
                    if(!listaAmigosPalavra.containsKey(post.getAutor()))
                        listaAmigosPalavra.put(post.getAutor(), u);
                    listaAmigosPalavra.get(post.getAutor()).addContPosts();
                    System.out.println(post.getAutor()+"-"+listaAmigosPalavra.get(post.getAutor()).getPontos());
                }
                Iterator<Comentario> comentarios = post.getComentarios().iterator();
                while(comentarios.hasNext()){
                    Comentario comentario = comentarios.next();
                    System.out.println(comentario.getMensagem());
                    if(comentario.getMensagem().toLowerCase().contains(palavra.toLowerCase())){
                        UsuarioPostSugestao u = new UsuarioPostSugestao(post.getAutor());
                        if(!listaAmigosPalavra.containsKey(post.getAutor()))
                            listaAmigosPalavra.put(post.getAutor(), u);
                        listaAmigosPalavra.get(post.getAutor()).addContComments();    
                    }
                }
            }
        }
    }    
}
